from __future__ import print_function
import torch

# 创建一个没有初始化的5*3矩阵
x = torch.empty(5, 3)
print(x)

# 创建一个随机初始化矩阵
x = torch.rand(5, 3)
print(x)

# 构造一个填满0且数据类型为long的矩阵:
x = torch.zeros([5, 3])
print(x)

# 直接从数据构造张量：
x = torch.tensor([5.5, 3])
print(x)


# 当GPU可用时,我们可以运行以下代码
# 我们将使用`torch.device`来将tensor移入和移出GPU
if torch.cuda.is_available():
    device = torch.device("cuda")          # a CUDA device object
    y = torch.ones_like(x)  # 直接在GPU上创建tensor
    x = x.to(device)                       # 或者使用`.to("cuda")`方法
    z = x + y
    print(z)
    print(z.to("cpu", torch.double))       # `.to`也能在移动时改变dtype